package com.tool.cn;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.lowagie.text.BadElementException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
import com.tool.cn.util.ImageUtil;

/**
 * 程序主类
 * 
 * @author wangzh 2018年1月16日 下午5:13:17
 */
public class ToolJob {
	private static final Log log = LogFactory.getLog(ToolJob.class);


    public static void toPdf(String imageFolderPath, String pdfPath) {
    	log.info("start");
        try {
            // 图片文件夹地址
            // String imageFolderPath = "D:/Demo/ceshi/";
            // 图片地址
            String imagePath = null;
            // PDF文件保存地址
            // String pdfPath = "D:/Demo/ceshi/hebing.pdf";
            // 输入流
            File pdf=new File(pdfPath);
            if(!pdf.exists()){
            	pdf.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(pdfPath);
            // 创建文档
            Document doc = new Document(null, 0, 0, 0, 0);
            //doc.open();
            // 写入PDF文档
            PdfWriter.getInstance(doc, fos);
            // 读取图片流
            BufferedImage img = null;
            // 实例化图片
            Image image = null;
            // 获取图片文件夹对象
            File file = new File(imageFolderPath);
                
            File[] files = file.listFiles();

            for (File file1 : files) {
                if (file1.getName().endsWith(".png")
                        || file1.getName().endsWith(".jpg")
                        || file1.getName().endsWith(".gif")
                        || file1.getName().endsWith(".jpeg")
                        || file1.getName().endsWith(".tif")) {
                    // System.out.println(file1.getName());
                    imagePath = imageFolderPath + file1.getName();
                    System.out.println(file1.getName());
                    // 读取图片流
                    img = ImageIO.read(new File(imagePath));
                    // 根据图片大小设置文档大小
                    doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
                    // 实例化图片
                    image = Image.getInstance(imagePath);
                    // 添加图片到文档
                    doc.open();
                    doc.add(image);
                }
            }
            // 关闭文档
            doc.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (BadElementException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    
    
    public static void toPdf(File file,String pdfPath){
    	try {
            // 图片地址
            String imagePath = file.toString();
           
            File pdf=new File(pdfPath);
            if(!pdf.exists()){
            	pdf.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(pdfPath);
            // 创建文档
            Document doc = new Document(null, 0, 0, 0, 0);
            //doc.open();
            // 写入PDF文档
            PdfWriter.getInstance(doc, fos);
            // 读取图片流
            BufferedImage img = null;
            // 实例化图片
            Image image = null;
            // 获取图片文件夹对象
         // 读取图片流
            img = ImageIO.read(new File(imagePath));
            // 根据图片大小设置文档大小
            doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
            // 实例化图片
            image = Image.getInstance(imagePath);
            // 添加图片到文档
            doc.open();
            doc.add(image);
            // 关闭文档
            doc.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (BadElementException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    
    
    public static void main(String[] args) {
    	
        String imagePath = "C:\\Users\\wang\\Desktop\\2018.12华美达\\";
        String pdfPath="C:\\Users\\wang\\Desktop\\output\\华美达-2018-12.pdf";
        toPdf(imagePath, pdfPath);
//        File input =new File(imagePath);
//        File[] fileList=input.listFiles(new FilenameFilter() {
//			@Override
//			public boolean accept(File paramFile, String paramString) {
//				
//				if(paramString.startsWith(".")||paramString.endsWith("~")||paramString.endsWith("tmp")){
//					return false;
//				}
//				return true;
//			}
//		});
//        int i=1;
//        for(File file:fileList){
//        	String pdfPath = "C:\\Users\\wang\\Desktop\\output\\"+i+".pdf";
//            toPdf(file,pdfPath);
//            i++;
//        }
        
//        String imgFile = "E:\\img12.jpg";//待处理的图片
//        String imgbese=ImageUtil.imageToStr(imgFile);
//        
//        System.out.println("长度"+imgbese.length());
//        System.out.println(imgbese);
    	
    	
//        String imgFilePath = "E:\\test.jpg";//新生成的图片
//        ImageUtil.strToImage("027d8308a2ec665acb1bdf63e513bcb9",imgFilePath);

    }

}
